home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS065.dsk / INDIVIDUAL ACCOUNTS.bas < prev    next >
BASIC Source File  |  2012-02-16  |  5KB  |  160 lines

  1. 10  REM  MON GOES HERE
  2. 12  DIM S$(100),B$(50)
  3. 100  HOME : PRINT "INSERT PFILE DISK AND HIT RETURN"
  4. 101  INPUT X$
  5. 102 NN = 450
  6. 103 LF = 28
  7. 105  DIM P$(NN)
  8. 110 Z$ = "<CTRL-D>"
  9. 111  PRINT Z$;"CATALOG"
  10. 112  HOME 
  11. 120  PRINT Z$;"OPEN PFILE"
  12. 130  PRINT Z$;"READ PFILE"
  13. 140  FOR E = 0 TO NN
  14. 150  INPUT P$(E)
  15. 160  NEXT E
  16. 170  PRINT Z$;"CLOSE PFILE"
  17. 200  REM  STATEMENT
  18. 205  INPUT "WHAT IS THE CURRENT BILLING DATE ";CD$:C1$ = CD$
  19. 206 M$ =  LEFT$(CD$,2)
  20. 207  IF  MID$ (CD$,2,1) = "/"  THEN M$ =  LEFT$(M$,1)
  21. 208 CD =  VAL(M$)
  22. 209 TR = CD -1:SX = CD -2:NT = CD -3
  23. 210  IF CD = 1  THEN TR = TR +12:SX = SX +12:NT = NT +12
  24. 211  IF CD = 2  THEN SX = SX +12:NT = NT +12
  25. 212  IF CD = 3  THEN NT = NT +12
  26. 213 CD$ =  STR$(CD)
  27. 215 YR =  VAL( RIGHT$(C1$,2))
  28. 220  REM  INDIVIDUAL
  29. 221  PRINT "WHAT ACCOUNT # OR #'S DO YOU WISH TO SEE "
  30. 222  INPUT B$(Q): IF B$(Q) = ""  THEN 225
  31. 223 Q = Q +1: GOTO 222
  32. 225 Q = Q -1: IF Q <0  THEN 620
  33. 226 A$ = B$(Q)
  34. 227  IF  LEN(A$) = 3  THEN 230
  35. 228 A$ = "0" +A$: GOTO 227
  36. 230  REM  HEADING
  37. 231  GOSUB 5000
  38. 232  REM  MASTER SORT
  39. 233 N = 0
  40. 234  FOR E = 0 TO NN
  41. 235  IF A$ =  MID$ (P$(E),9,3)  THEN S$(N) = P$(E):N = N +1
  42. 236  NEXT E
  43. 237 N = N -1
  44. 240  IF F = 1  THEN F = 0: GOTO 225
  45. 250  REM  90 AND OVER
  46. 251  FOR D = 1 TO 31
  47. 260  FOR E = 0 TO N
  48. 270  IF A$ =  MID$ (S$(E),9,3)  THEN  GOSUB 1000
  49. 280  NEXT E
  50. 290  NEXT D
  51. 291  PRINT  TAB( 33);"*********"
  52. 292 V = NB: GOSUB 6000:NB$ = V$: PRINT  TAB( 33);"$";NB$
  53. 293 V$ = ""
  54. 300  REM  FOR 60 DAY
  55. 310  FOR D = 1 TO 31
  56. 320  FOR E = 0 TO N
  57. 330  IF A$ =  MID$ (S$(E),9,3)  THEN  GOSUB 2000
  58. 335  NEXT E: NEXT D
  59. 340  PRINT  TAB( 44);"**********"
  60. 350 V = SB: GOSUB 6000:SB$ = V$: PRINT  TAB( 44);"$";SB$
  61. 355 V$ = ""
  62. 400  REM  FOR 30 DAYS
  63. 410  FOR D = 1 TO 31
  64. 420  FOR E = 0 TO N
  65. 430  IF A$ =  MID$ (S$(E),9,3)  THEN  GOSUB 3000
  66. 440  NEXT E
  67. 450  NEXT D
  68. 460  PRINT  TAB( 56);"**********"
  69. 470 V = TB: GOSUB 6000:TB$ = V$: PRINT  TAB( 56);"$";TB$
  70. 500  REM  CURRENT
  71. 510  FOR D = 1 TO 31
  72. 520  FOR E = 0 TO N
  73. 530  IF A$ =  MID$ (S$(E),9,3)  THEN  GOSUB 4000
  74. 540  NEXT E
  75. 550  NEXT D
  76. 560  PRINT  TAB( 68);"**********"
  77. 570 V = CB: GOSUB 6000:CB$ = V$: PRINT  TAB( 68);"$";CB$
  78. 600  FOR X = 1 TO 80: PRINT "-";: NEXT X
  79. 610  PRINT "90 DAYS+ $";NB$
  80. 611  PRINT "60 DAYS  $";SB$
  81. 612  PRINT "30 DAYS  $";TB$
  82. 613  PRINT "CURRENT  $";CB$
  83. 614 V = CB +TB +SB +NB: GOSUB 6000:TB$ = V$: PRINT "  *TOTAL $";TB$
  84. 615 TB = 0:CB = 0:NB = 0:SB = 0
  85. 616  FOR X = 1 TO 80: PRINT "-";: NEXT 
  86. 617  IF LF =  <0  THEN LF = 2
  87. 618  FOR X = 1 TO LF: PRINT : NEXT X
  88. 619 LF = 28: GOTO 225
  89. 620  PR# 0
  90. 630  HOME 
  91. 650  PRINT "TO END TYPE  'END' -": INPUT X$
  92. 660  IF X$ = "END"  THEN  PRINT "DONE AND THANKS ": FOR X = 0 TO 2000: NEXT X: PRINT Z$;"RUN HELLO"
  93. 665 N = 0
  94. 670  GOTO 200
  95. 680  PRINT "END OF PROGRAM  THANK YOU": GOTO 999
  96. 1000  REM  PRINT FOR 90&OVER
  97. 1010  IF NT =  VAL( MID$ (S$(E),71,2))  THEN 1020
  98. 1011  IF SX =  VAL( MID$ (S$(E),71,2))  THEN  RETURN 
  99. 1012  IF TR =  VAL( MID$ (S$(E),71,2))  THEN  RETURN 
  100. 1013  IF CD =  VAL( MID$ (S$(E),71,2))  THEN  RETURN 
  101. 1015  REM  RETURN
  102. 1020  IF D =  VAL( MID$ (S$(E),74,2))  THEN 1030
  103. 1025  RETURN 
  104. 1030  PRINT  LEFT$(S$(E),8); MID$ (S$(E),37,9); MID$ (S$(E),56,15);"$"; MID$ (S$(E),46,10)
  105. 1040 NB = NB + VAL( MID$ (S$(E),46,10))
  106. 1045 LF = LF -1
  107. 1050  RETURN 
  108. 2000  REM  FOR 60 DAY
  109. 2010  IF SX =  VAL( MID$ (S$(E),71,2))  THEN 2020
  110. 2015  RETURN 
  111. 2020  IF D =  VAL( MID$ (S$(E),74,2))  THEN 2030
  112. 2025  RETURN 
  113. 2030  PRINT  LEFT$(S$(E),8); MID$ (S$(E),37,9); MID$ (S$(E),56,15); TAB( 12);"$"; MID$ (S$(E),46,10)
  114. 2040 SB = SB + VAL( MID$ (S$(E),46,10))
  115. 2045 LF = LF -1
  116. 2050  RETURN 
  117. 3000  REM  SUB FOR 30 DAYS
  118. 3010  IF TR =  VAL( MID$ (S$(E),71,2))  THEN 3020
  119. 3015  RETURN 
  120. 3020  IF D =  VAL( MID$ (S$(E),74,2))  THEN 3030
  121. 3025  RETURN 
  122. 3030  PRINT  LEFT$(S$(E),8); MID$ (S$(E),37,9); MID$ (S$(E),56,15); TAB( 24);"$"; MID$ (S$(E),46,10)
  123. 3040 TB = TB + VAL( MID$ (S$(E),46,10))
  124. 3045 LF = LF -1
  125. 3050  RETURN 
  126. 4000  REM  FOR CURRENT
  127. 4010  IF CD =  VAL( MID$ (S$(E),71,2))  THEN 4020
  128. 4015  RETURN 
  129. 4020  IF D =  VAL( MID$ (S$(E),74,2))  THEN 4030
  130. 4025  RETURN 
  131. 4030  PRINT  LEFT$(S$(E),8); MID$ (S$(E),37,9); MID$ (S$(E),56,15); TAB( 36);"$"; MID$ (S$(E),46,10)
  132. 4040 CB = CB + VAL( MID$ (S$(E),46,10))
  133. 4045 LF = LF -1
  134. 4050  RETURN 
  135. 5000  REM  PRINTS HEADS
  136. 5010  FOR E = 0 TO NN
  137. 5020  IF E = NN  THEN  PRINT "NO SUCH ACCOUNT ":F = 1: RETURN 
  138. 5030  IF A$ =  MID$ (P$(E),9,3)  THEN 5040
  139. 5035  NEXT E
  140. 5040  PR# 1: PRINT : PRINT : PRINT "TODAY'S DATE ";C1$: PRINT "ACCOUNT # ";A$
  141. 5050  PRINT "COMPANY "; MID$ (P$(E),12,25)
  142. 5060  FOR X = 1 TO 80: PRINT "-";: NEXT X
  143. 5070  PRINT "DATE   INV OR CHK#  COMMENTS";
  144. 5071  PRINT  TAB( 6);"90+DAYS"; TAB( 7);"60 DAYS"; TAB( 7);"30 DAYS"; TAB( 7);"CURRENT"
  145. 5080  FOR X = 1 TO 80: PRINT "-";: NEXT X
  146. 5090  RETURN 
  147. 6000  REM  SUB FOR ROUND AND 10 PLACES
  148. 6001  IF V <0  THEN V = V * -1:F8 =  -1
  149. 6005 V =  INT(V *10 ^2 +.5)/ INT(10 ^2 +.5)
  150. 6010  IF V < > INT(V)  THEN 6021
  151. 6020 V$ =  STR$(V) +".00": GOTO 6040
  152. 6021 V1 = V - INT(V)
  153. 6022 V1 =  INT(V1 *100 +.5)/100
  154. 6030 V$ =  STR$(V1)
  155. 6031  IF  LEN(V$) = 2  THEN V$ = V$ +"0"
  156. 6032 V$ =  STR$( INT(V)) +V$
  157. 6033  IF F8 =  -1  THEN V$ = "-" +V$
  158. 6040  IF  LEN(V$) =  >10  THEN 6050
  159. 6045 V$ = " " +V$: GOTO 6040
  160. 6050 F8 = 1: RETURN